package com.ruoyi.mall.common.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 商品列表对象 dts_goods
 *
 * @author ruoyi
 * @date 2025-02-19
 */
public class DtsGoods extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 商品编号 */
    @Excel(name = "商品编号")
    private String goodsSn;

    /** 商品名称 */
    @Excel(name = "商品名称")
    private String name;

    /** 图片 */
    @Excel(name = "图片")
    private String picUrl;

    /** 分享图 */
    @Excel(name = "分享图")
    private String shareUrl;

    /** 图片详情 */
    @Excel(name = "图片详情")
    private String gallery;

    /** 专柜价格 */
    @Excel(name = "专柜价格")
    private BigDecimal counterPrice;

    /** 当前价格 */
    @Excel(name = "当前价格")
    private BigDecimal retailPrice;

    /** 审批状态 */
    @Excel(name = "审批状态")
    private Integer approveStatus;


    // 审批状态
    private String approveStatus1;

    /** 商品所属类目ID */
    private Long categoryId;

    /** $column.columnComment */
    private Long brandId;

    /** 商品关键字 */
    private String keywords;

    /** 商品简介 */
    private String brief;

    /** 是否上架 */
    private Integer isOnSale;

    /** $column.columnComment */
    private Integer sortOrder;

    /** 是否新品首发，如果设置则可以在新品首发页面展示 */
    private Integer isNew;

    /** 是否人气推荐，如果设置则可以在人气推荐页面展示 */
    private Integer isHot;

    /** 商品单位，例如件、盒 */
    private String unit;

    /** 商品详细介绍，是富文本格式 */
    private String detail;

    /** 创建时间 */
    private Date addTime;

    /** 浏览量 */
    private Long browse;

    /** 已销售总量 */
    private Long sales;

    /** 逻辑删除 */
    private Integer deleted;

    /** 供货单位 */
    private String commpany;

    /** 批发价格 */
    private BigDecimal wholesalePrice;

    /** 审批内容 */
    private String approveMsg;

    /** 佣金类型 */
    private Integer brokerageType;

    /** 推广佣金金额 */
    private BigDecimal brokeragePrice;

    //浏览记录
    private DtsFootprint dtsFootprint;

    //商品规格
    private List<DtsGoodsProduct> dtsGoodsProduct;

    private List<DtsGoodsAttribute> dtsGoodsAttribute;

    private List<DtsGoodsSpecification> dtsGoodsSpecification;

    public List<DtsGoodsAttribute> getDtsGoodsAttribute() {
        return dtsGoodsAttribute;
    }

    public void setDtsGoodsAttribute(List<DtsGoodsAttribute> dtsGoodsAttribute) {
        this.dtsGoodsAttribute = dtsGoodsAttribute;
    }

    public List<DtsGoodsSpecification> getDtsGoodsSpecification() {
        return dtsGoodsSpecification;
    }

    public void setDtsGoodsSpecification(List<DtsGoodsSpecification> dtsGoodsSpecification) {
        this.dtsGoodsSpecification = dtsGoodsSpecification;
    }

    public List<DtsGoodsProduct> getDtsGoodsProduct() {
        return dtsGoodsProduct;
    }

    public void setDtsGoodsProduct(List<DtsGoodsProduct> dtsGoodsProduct) {
        this.dtsGoodsProduct = dtsGoodsProduct;
    }

    public DtsFootprint getDtsFootprint() {
        return dtsFootprint;
    }

    public void setDtsFootprint(DtsFootprint dtsFootprint) {
        this.dtsFootprint = dtsFootprint;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setGoodsSn(String goodsSn)
    {
        this.goodsSn = goodsSn;
    }

    public String getGoodsSn()
    {
        return goodsSn;
    }
    public void setName(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return name;
    }
    public void setPicUrl(String picUrl)
    {
        this.picUrl = picUrl;
    }

    public String getPicUrl()
    {
        return picUrl;
    }
    public void setShareUrl(String shareUrl)
    {
        this.shareUrl = shareUrl;
    }

    public String getShareUrl()
    {
        return shareUrl;
    }
    public void setGallery(String gallery)
    {
        this.gallery = gallery;
    }

    public String getGallery()
    {
        return gallery;
    }
    public void setCounterPrice(BigDecimal counterPrice)
    {
        this.counterPrice = counterPrice;
    }

    public String getApproveStatus1() {
        return approveStatus1;
    }

    public void setApproveStatus1(String approveStatus1) {
        this.approveStatus1 = approveStatus1;
    }

    public BigDecimal getCounterPrice()
    {
        return counterPrice;
    }
    public void setRetailPrice(BigDecimal retailPrice)
    {
        this.retailPrice = retailPrice;
    }

    public BigDecimal getRetailPrice()
    {
        return retailPrice;
    }
    public void setApproveStatus(Integer approveStatus)
    {
        this.approveStatus = approveStatus;
    }

    public Integer getApproveStatus()
    {
        return approveStatus;
    }
    public void setCategoryId(Long categoryId)
    {
        this.categoryId = categoryId;
    }

    public Long getCategoryId()
    {
        return categoryId;
    }
    public void setBrandId(Long brandId)
    {
        this.brandId = brandId;
    }

    public Long getBrandId()
    {
        return brandId;
    }
    public void setKeywords(String keywords)
    {
        this.keywords = keywords;
    }

    public String getKeywords()
    {
        return keywords;
    }
    public void setBrief(String brief)
    {
        this.brief = brief;
    }

    public String getBrief()
    {
        return brief;
    }
    public void setIsOnSale(Integer isOnSale)
    {
        this.isOnSale = isOnSale;
    }

    public Integer getIsOnSale()
    {
        return isOnSale;
    }
    public void setSortOrder(Integer sortOrder)
    {
        this.sortOrder = sortOrder;
    }

    public Integer getSortOrder()
    {
        return sortOrder;
    }
    public void setIsNew(Integer isNew)
    {
        this.isNew = isNew;
    }

    public Integer getIsNew()
    {
        return isNew;
    }
    public void setIsHot(Integer isHot)
    {
        this.isHot = isHot;
    }

    public Integer getIsHot()
    {
        return isHot;
    }
    public void setUnit(String unit)
    {
        this.unit = unit;
    }

    public String getUnit()
    {
        return unit;
    }
    public void setDetail(String detail)
    {
        this.detail = detail;
    }

    public String getDetail()
    {
        return detail;
    }
    public void setAddTime(Date addTime)
    {
        this.addTime = addTime;
    }

    public Date getAddTime()
    {
        return addTime;
    }
    public void setBrowse(Long browse)
    {
        this.browse = browse;
    }

    public Long getBrowse()
    {
        return browse;
    }
    public void setSales(Long sales)
    {
        this.sales = sales;
    }

    public Long getSales()
    {
        return sales;
    }
    public void setDeleted(Integer deleted)
    {
        this.deleted = deleted;
    }

    public Integer getDeleted()
    {
        return deleted;
    }
    public void setCommpany(String commpany)
    {
        this.commpany = commpany;
    }

    public String getCommpany()
    {
        return commpany;
    }
    public void setWholesalePrice(BigDecimal wholesalePrice)
    {
        this.wholesalePrice = wholesalePrice;
    }

    public BigDecimal getWholesalePrice()
    {
        return wholesalePrice;
    }
    public void setApproveMsg(String approveMsg)
    {
        this.approveMsg = approveMsg;
    }

    public String getApproveMsg()
    {
        return approveMsg;
    }
    public void setBrokerageType(Integer brokerageType)
    {
        this.brokerageType = brokerageType;
    }

    public Integer getBrokerageType()
    {
        return brokerageType;
    }
    public void setBrokeragePrice(BigDecimal brokeragePrice)
    {
        this.brokeragePrice = brokeragePrice;
    }

    public BigDecimal getBrokeragePrice()
    {
        return brokeragePrice;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("goodsSn", getGoodsSn())
            .append("name", getName())
            .append("picUrl", getPicUrl())
            .append("shareUrl", getShareUrl())
            .append("gallery", getGallery())
            .append("counterPrice", getCounterPrice())
            .append("retailPrice", getRetailPrice())
            .append("approveStatus", getApproveStatus())
            .append("categoryId", getCategoryId())
            .append("brandId", getBrandId())
            .append("keywords", getKeywords())
            .append("brief", getBrief())
            .append("isOnSale", getIsOnSale())
            .append("sortOrder", getSortOrder())
            .append("isNew", getIsNew())
            .append("isHot", getIsHot())
            .append("unit", getUnit())
            .append("detail", getDetail())
            .append("addTime", getAddTime())
            .append("updateTime", getUpdateTime())
            .append("browse", getBrowse())
            .append("sales", getSales())
            .append("deleted", getDeleted())
            .append("commpany", getCommpany())
            .append("wholesalePrice", getWholesalePrice())
            .append("approveMsg", getApproveMsg())
            .append("brokerageType", getBrokerageType())
            .append("brokeragePrice", getBrokeragePrice())
            .toString();
    }
}
